package edu.cqie.smartfarm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import edu.cqie.smartfarm.dto.LoginDTO;
import edu.cqie.smartfarm.dto.UserDTO;
import edu.cqie.smartfarm.dto.UserQueryDTO;
import edu.cqie.smartfarm.dto.UserUpdateDTO;
import edu.cqie.smartfarm.entity.User;
import edu.cqie.smartfarm.result.PageVO;
import edu.cqie.smartfarm.vo.UserVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yyw
 * @since 2024-12-26
 */
public interface IUserService extends IService<User> {

    /**
     * 用户登录
     * @param loginDTO
     * @return
     */
    String login(LoginDTO loginDTO);

    /**
     * 用户登出
     * @param token
     * @return
     */
    String logout(String token);

    /**
     * 根据用户名获取用户信息
     * @param userId
     * @return
     */
    UserVO getByUserId(Integer userId);

    /**
     * 添加用户
     * @param userDTO
     */
    void add(UserDTO userDTO);

    /**
     * 分页获取用户列表
     * @param userQueryDTO
     * @return
     */
    PageVO<UserVO> pageList(UserQueryDTO userQueryDTO);

    /**
     * 修改用户信息
     * @param userUpdateDTO
     */
    void updateInfo(UserUpdateDTO userUpdateDTO);
}
